
#define MAXNUM 50
enum boolean{false=0,true=1};
typedef struct{
    int size;
    int value;
}Obj;
Obj obj[]={
    {2,3},{3,4},{5,5},{6,7}
};
int n=4;
int knapsack(Obj obj[],int C,int n){
    int V[n+1][C+1];
    for(int i=0;i<=n;i++)
	for(int j=0;j<=C;j++)
	    V[i][j]=0;
    for(int i=1;i<=n;i++){
	for(int j=1;j<=C;j++){
	    V[i][j]=V[i-1][j];
	    if(obj[i-1].size<=j && V[i][j]<V[i-1][j-obj[i-1].size]+obj[i-1].value)
		V[i][j]=V[i-1][j-obj[i-1].size]+obj[i-1].value;
	    printf("%2d ",V[i][j]);
	}
	printf("\n");
    }
    return V[n][C];
}

int main(int args,char *argv[]){
    int k=knapsack(obj,11,4);
}
